package fr.lna.chess.base;

import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ImportResource;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.stereotype.Component;

import fr.lna.chess.util.DataBaseConfig;


/**
 * Configuration de la source de données :
 * C'est l'alternative à la configuration via le fichier xml :
 *   <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
      <property name="url" value="${jdbc.url}"/>
      <property name="username" value="${jdbc.username}"/>
      <property name="password" value="${jdbc.password}"/>
  </bean>
  
 * @author Rouviere_x
 *
 */
@Component // l'annotation component permet de charger la classe principale comme bean  
public class BddDataSourceFactory {

	  /**
	   * L'annotation bean ajoute la data source dans le contexte applicatif
	   * @return
	   */
	  public @Bean DataSource dataSource(@Qualifier("database.config") DataBaseConfig conf) {
		  String url= conf.getUrl();
		  String username = conf.getUserName();
		  String password = conf.getPassword();
		  return new DriverManagerDataSource(url, username, password);
	  }
}
